package com.yunxin.admin.system.application;

import com.yunxin.admin.system.application.command.DeptCommand;
import com.yunxin.admin.system.application.dto.DeptDTO;
import com.yunxin.admin.system.application.dto.DeptInfoDTO;
import com.yunxin.admin.system.application.dto.OptionDTO;

import java.util.List;

/**
 * @author zero°
 * @since 2023-07-11
 */
public interface DeptQueryService {

    /**
     * 部门列表
     *
     * @param command command
     * @return List<DeptDTO>
     */
    List<DeptDTO> listDepartments(DeptCommand command);

    /**
     * 部门树形下拉选项
     *
     * @return List<AdminOptionDTO < Long>>
     */
    List<OptionDTO<Long>> listDeptOptions();

    /**
     * 获取部门详情
     *
     * @param deptId deptId
     * @return DeptInfoDTO
     */
    DeptInfoDTO getDeptInfo(Long deptId);
}
